console.log("成功加载staff.js")

// 使用ajax实现按钮状态的切换
function updateStaffStatus(checkbox, staffId) {
    // 获取复选框的选中状态
    var isChecked = checkbox.checked;
    var originalCheckedState = isChecked; // 添加var关键字来声明变量

    // 发送AJAX请求到服务器来更新员工的状态
    console.log("Staff ID:", staffId);
    console.log("Is checked:", isChecked);
    fetch('/staff/update-status/', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({staffId: staffId, isActive: isChecked})
    })
        .then(response => response.json())
        .then(data => {
            if (data.message === 'success') {
                console.log('Success:', data);
                // 这里不需要做额外操作，因为状态已经成功更新
            } else if (data.message === 'fail') {
                // 如果更新失败，将复选框改回原来的状态
                checkbox.checked = !originalCheckedState;
                // 显示一个错误消息框
                alert('改变状态失败');
                console.error('Server response:', data);
            } else {
                // 如果返回的消息不是预期的success或fail，记录错误
                console.error('Unexpected server response:', data);
            }
        })
        .catch((error) => {
            // 处理网络错误或JSON解析错误
            checkbox.checked = !originalCheckedState;
            alert('请求失败，请稍后重试');
            console.error('Error:', error);
        });
}

// 给table添加tr的select css类型
document.querySelectorAll('.staff-table tr').forEach(row => {
    row.addEventListener('click', function () {
        // Remove selected class from all rows
        document.querySelectorAll('.staff-table tr').forEach(r => {
            r.classList.remove('selected');
        });
        // Add selected class to clicked row
        this.classList.add('selected');
    });
});

// 添加人员
function submitAddStaff() {
    // 获取表单元素和错误提示元素
    var form = document.getElementById('addStaffForm');
    var nameInput = form.elements['name'];
    var workNumInput = form.elements['workNum'];
    var passwordInput = form.elements['password'];
    var nameError = document.getElementById('nameError');
    var workNumError = document.getElementById('workNumError');
    var passwordError = document.getElementById('passwordError');

    // 清除之前的错误提示
    nameError.style.display = 'none';
    workNumError.style.display = 'none';
    passwordError.style.display = 'none';

    // 获取输入值并进行验证
    var username = nameInput.value.trim();
    var worknum = workNumInput.value.trim();
    var password = passwordInput.value.trim();
    var role_id = form.elements['role'].value
    var team_id = form.elements['team'].value


    var errors = [];
    if (username === '') {
        errors.push('user not null ');
    } else if (username.length > 10) {
        errors.push('user length limit 10');
    }
    if (worknum === '') {
        errors.push('worknum not null');
    } else if (worknum.length > 10) {
        errors.push('worknum length limit 10');
    }

    if (password === '') {
        errors.push('password not null ');
    } else if (password.length > 10) {
        errors.push('password length limit 10');
    }

    // 显示错误提示
    if (errors.length > 0) {
        if (errors.some(error => error.includes('user'))) {
            nameError.textContent = errors.find(error => error.includes('user')) || '';
            nameError.style.display = 'inline';
        }
        if (errors.some(error => error.includes('worknum'))) {
            workNumError.textContent = errors.find(error => error.includes('worknum')) || ''
            workNumError.style.display = 'inline';
        }
        if (errors.some(error => error.includes('password'))) {
            passwordError.textContent = errors.find(error => error.includes('password')) || '';
            passwordError.style.display = 'inline';
        }
        return; // 阻止表单提交
    }
//    const formData = new FormData(document.getElementById('addStaffForm'));
//    使用ajax来添加信息
    fetch('/staff/add-user/', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({
            job_n: worknum,
            username: username,
            password: password,
            team_id: team_id,
            role_id: role_id
        })
    })
        .then(response => response.json())
        .then(data => {
            if (data.message === 'success') {
                console.log('Success:', data);
                // 关闭模态窗口
                document.getElementById('addStaffModal').style.display = 'none'
                // 刷新页面
                location.reload();
                // 这里不需要做额外操作，因为状态已经成功更新
            } else if (data.message === 'fail') {
                // 如果更新失败，将复选框改回原来的状态
                var workNumInput = '';
                var passwordInput = '';
                var nameInput = '';
                // 显示一个错误消息框
                alert('改变状态失败');
                console.error('Server response:', data);
            } else {
                // 如果返回的消息不是预期的success或fail，记录错误
                console.error('Unexpected server response:', data);
            }
        })
        .catch((error) => {
            // 处理网络错误或JSON解析错误
            alert('请求失败，请稍后重试');
            console.error('Error:', error);
        });
}

// 删除人员的全局变量
let globalStaffId;

function deleteStaff(staffId) {
    globalStaffId = staffId; // 将 staffId 存储在全局变量中
}

function confirmDeleteStaff() {
    console.log(globalStaffId);
//     使用ajax来传送消息
    fetch('/staff/delete-user/', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json'
        },
        body: JSON.stringify({id: globalStaffId})
    })
        .then(response => response.json())
        .then(data => {
            if (data.message === 'success') {
                console.log('Success:', data);
                // 关闭模态窗口
                document.getElementById('deleteStaffModal').style.display = 'none'
                // 刷新页面
                location.reload();
                // 这里不需要做额外操作，因为状态已经成功更新
            } else if (data.message === 'fail') {
                // 如果更新失败，将复选框改回原来的状态
                // 显示一个错误消息框
                alert('删除用户失败');
                console.error('Server response:', data);
            } else {
                // 如果返回的消息不是预期的success或fail，记录错误
                console.error('Unexpected server response:', data);
            }
        })
        .catch((error) => {
            // 处理网络错误或JSON解析错误
            alert('请求失败，请稍后重试');
            console.error('Error:', error);
        });
}

let edit_staffId

// 编辑用户的信息
function editStaff(staffId) {
    edit_staffId = staffId
    // 使用fetch发送GET请求到编辑用户页面
    fetch('/staff/edit-user/?id=' + staffId)
        .then(response => response.json())
        .then(data => {
            // 填充表单数据
            document.getElementById('edit_name').value = data.name;
            document.getElementById('edit_workNum').value = data.workNum;
            document.getElementById('edit_password').value = data.password;
            document.getElementById('edit_role').value = data.role;
            document.getElementById('edit_team').value = data.team;

            // 显示编辑模态框
            var editModal = new bootstrap.Modal(document.getElementById('editStaffModal'));
            editModal.show();
        })
        .catch(error => {
            console.error('Error:', error);
            alert('获取用户信息失败，请稍后重试');
        });
}

function submitEditStaff() {
    console.log(edit_staffId)
    // 获取表单数据
    const name = document.getElementById('edit_name').value;
    const workNum = document.getElementById('edit_workNum').value;
    const password = document.getElementById('edit_password').value;
    const role = document.getElementById('edit_role').value;
    const team = document.getElementById('edit_team').value;

    // 构建请求数据
    const data = {
        id: edit_staffId, // 从父作用域获取staffId
        name: name,
        workNum: workNum,
        password: password,
        role: parseInt(role), // Convert to number to avoid type mismatch
        team: parseInt(team) // Convert to number to avoid type mismatch
    };

    // 发送POST请求到服务器
    fetch('/staff/edit-user/', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify(data)
    })
        .then(response => response.json())
        .then(data => {
            if (data.message === 'success') {
                // 关闭模态窗口
                const modal = bootstrap.Modal.getInstance(document.getElementById('editStaffModal'));
                modal.hide();
                // 刷新页面显示更新后的数据
                location.reload();
            } else {
                alert('更新用户信息失败');
                console.error('Server response:', data);
            }
        })
        .catch((error) => {
            alert('请求失败，请稍后重试');
            console.error('Error:', error);
        });
}
function cancel() {
    window.location.href = '/staff';

}